using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Drawing;

using SlimDX;
using SlimDX.Direct3D9;

namespace miciv.Rendering
{
    public delegate void UserHandler(IRendererContext _rendererContext);

    public interface IRenderContextClearOptions
    {
        Device Device { get; set; }
        bool Enabled { get; set; }
        ClearFlags Flags { get; set; }
        Color4 Color { get; set; }
        float Depth { get; set; }
        int Stencil { get; set; }
        Rectangle[] Rectangles { get; set; }
        void Clear();
    }

    public interface IRendererContext
    {
        string ID { get; set; }
        ICamera Camera { get; set; }
        Viewport Viewport { get; set; }
        bool IsNullViewport { get; }
        ScreenSizeChangedHandler ScreenSizeChanged { get; set; }
        IRenderContextClearOptions ClearOptions { get; set; }
        UserHandler BeginScene { get; set; }
        UserHandler EndScene { get; set; }
        void Clear();
    }
}
